package com.yeban.javase.test.test02;

/**
 * @Desc TODO
 * @Author yeban
 * @Date 2025/11/15
 */

import java.io.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

/**
 * 以当前时间为起始日期格式为yyyMMdd，控制台提示 “当前是yyyMMdd，请输入创建的文件夹天数”，
 * 通过键盘输入天数，在D盘date文件夹下生成连续的日期文件夹，
 * 并在每个日期文件夹中生成对应的文件，文件名为当前日期.md,文件中的内容为:这是 [对应日期] 的文件夹。
 *
 * 举例:当前为2024/11/30,控制台输入2，则最终文件夹及文件结构为:
 * D:\\date\\20241201\\20221401.md
 *         \\20241202\\20241202.md
 * 20241201.md文件中内容为这是20241201的文件夹。
 */
public class test1 {

    public static void main(String[] args) {
        // 获取时间格式
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd");
        LocalDateTime now = LocalDateTime.now();
        System.out.println("当前是" + now.format(dtf) + "，请输入创建的文件夹天数");
        // 通过键盘输入天数
        Scanner sc = new Scanner(System.in);
        int day = sc.nextInt();
        // 创建根文件夹
        File root = new File("D:\\date");
        if (!root.exists()) {
            root.mkdir();
        }
        for (int i = 1; i <= day; i++) {
            // 天数+1
            LocalDateTime targetDay = now.plusDays(i);
            // 创建对应天数的文件夹
            File newFolder = new File(root,targetDay.format(dtf));
            if (!newFolder.exists()) {
                newFolder.mkdir();
            }
            // 创建对应的文件
            File newFile = new File(newFolder,targetDay.format(dtf)+".md");
            if (!newFile.exists()) {
                try(
                    FileWriter fw = new FileWriter(newFile)
                ) {
                    fw.write("这是 " + targetDay.format(dtf) + " 的文件夹。");
                } catch (FileNotFoundException e) {
                    throw new RuntimeException(e);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }
}
